package HomeWork;

import java.util.Scanner;

/*
9.需求：

        程序自动生成一个1-100之间的数字，使用程序实现猜出这个数字是多少？
        当猜错的时候根据不同情况给出相应的提示

        如果猜的数字比真实数字大，提示你猜的数据大了

        如果猜的数字比真实数字小，提示你猜的数据小了

        如果猜的数字与真实数字相等，提示恭喜你猜中了
 */
public class Test09 {
    public static void main(String[] args) {
        int num = (int)(Math.random()*100+1);
        int num2;

        Scanner sc = new Scanner(System.in);

        //录入数据
        while(true){
            System.out.println("请输入一个数字");
            num2 = sc.nextInt();
            if(num2<0 || num2 > 100){
                System.out.println("您输入的数字有误，请重新输入");
            } else {
                break;
            }
        }

        //二分法猜数字
        half(num,num2);

    }

    public static void half(int num, int num2){
        int num3 = 0;
        int num4 = 100;
        while(true){
            if(num2 < num){
                System.out.println("你猜的数据"+num2+"小了");
                num3 = num2;
                num2 = (num2+num4)/2;
            } else if (num2 > num) {
                System.out.println("你猜的数据"+num2+"大了");
                num4 = num2;
                num2 = (num2+num3)/2;
            }else{
                System.out.println("恭喜你猜中了,数字为"+num2);
                break;
            }
        }

    }
}
